lib/commit: Don't set user.ostreemeta for bare → bare-user-only imports
authorColin Walters <walters@verbum.org>
Wed, 16 Jan 2019 13:45:34 +0000 (13:45 +0000)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 16 Jan 2019 14:37:15 +0000 (14:37 +0000)
The point of `bare-user-only` is it doesn't have xattrs; it's a
special case in import handling.

Closes: #1803
Approved by: jlebon

src/libostree/ostree-repo-commit.c

index dfdd485324112217cc2a7908756fb8d97bc59909..f44446cae725d7e19442e0f4d394972cb0f3d7cd 100644 (file)
@@ -4279,8 +4279,18 @@ import_one_object_direct (OstreeRepo    *dest_repo,
                                            cancellable, error))
                 return FALSE;
             }
+          else if (dest_repo->mode == OSTREE_REPO_MODE_BARE_USER_ONLY)
+            {
+              /* Nothing; this is the "bareuser-only conversion case",
+               * we don't need to set any xattrs in the dest repo.
+               */
+            }
           else
             {
+              /* And this case must be bare-user → bare-user */
+              g_assert (src_repo->mode == OSTREE_REPO_MODE_BARE_USER);
+              g_assert (src_repo->mode == dest_repo->mode);
+
               /* bare-user; we just want ostree.usermeta */
               g_autoptr(GBytes) bytes =
                 glnx_fgetxattr_bytes (src_fd, "user.ostreemeta", error);